package oom;
import java.util.ArrayList;
import java.util.List;

/**
 * java堆溢出
 * java堆用于存储对象实例，只要不断的创建对象，并且保证GC roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象，
 * 那么在对象数量达到最大堆的容量限制后就会产生内存溢出异常
 * 运行参数 -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
 * -XX:+HeapDumpOnOutOfMemoryError可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后进行分析
 * @author Ditto
 *
 */
public class HeapOOM {
	public static class OOMObject{
		
	}
	
	public static void main(String[] args) {
		List<OOMObject> list = new ArrayList<OOMObject>();
		while(true){
			list.add(new OOMObject());
		}
	}
}
